package com.youlai.boot.form.model.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.youlai.boot.common.base.BaseEntity;
import lombok.*;

import java.io.Serial;
import java.time.LocalDateTime;


/**
 * 表单数据收集任务定义表
 *
 * @author fwj
 * @since 2025/11/7
 */
@EqualsAndHashCode(callSuper = true)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName(value = "form_collect_task")
public class FormCollectTask extends BaseEntity {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 任务编码
     */
    private String taskCode;

    /**
     * 任务名称
     */
    private String taskName;

    /**
     * 关联的表单ID (form_definition.id)
     */
    private Long formId;

    /**
     * 关联的表单版本
     */
    private Integer formVersion;

    /**
     * 任务开始时间
     */
    private LocalDateTime startTime;

    /**
     * 任务结束时间
     */
    private LocalDateTime endTime;

    /**
     * 是否允许多次填报（0否，1是）
     */
    private Integer allowMultiSubmit;

    /**
     * 最多可填报次数（为多次时生效）
     */
    private Integer maxSubmitCount;


    /**
     * 任内描述
     */
    private String description;

    /**
     * 任务状态（0草稿, 1已发布, 2进行中, 3已结束, 4已归档）
     */
    private Integer status;

    /**
     * 创建人ID
     */
    private Long createBy;
    /**
     * 修改人ID
     */
    private Long updateBy;

    /**
     * 逻辑删除标识(1-已删除 0-未删除)
     */
    private Integer isDeleted;

    /**
     * 提交目标ID列表
     */
    private String targetIds;
}
